有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java时间和第二期显示1:10,而不是13:10

嗨,我有一节课要上:

public static final String DATE_DDMMMMYYHHMM_PATTERN = "dd MMMM yyyy, hh:mm";


      public static String formatDate(Date date , String pattern) {
            SimpleDateFormat sdf = new SimpleDateFormat(pattern);
            String formatDate = "";
            if(date != null) {
                formatDate = sdf.format(date);
            }
            return formatDate;
        }

我的单元测试如下所示:

@Test
public void testDateFormat(){

      DateTime dateTime = new DateTime(2013, 11, 01, 13, 10, 00, 00); 
      Date date = dateTime.toDate(); 
      Assert.assertEquals("01 November 2013, 13:10", Main.formatDate(date,Main.DATE_DDMMMMYYHHMM_PATTERN)); 


}

虽然在我的测试中,我将时间和秒定义为13:10,但它显示为2013年11月1日,01:10。请问我能做些什么,以便时间和秒可以显示为13:10

提前感谢您的帮助


共 (2) 个答案

  1. # 1 楼答案

    将小时格式从hh更改为HH

    public static final String DATE_DDMMMMYYHHMM_PATTERN = "dd MMMM yyyy, HH:mm";
    

    根据docs

    h - Hour in am/pm (1-12)
    H - Hour in day (0-23)
    
  2. # 2 楼答案

    试试这个:

    public static final String DATE_DDMMMMYYHHMM_PATTERN = "dd MMMM yyyy, HH:mm";
    

    你需要把hh改成hh

    HH格式用HOUR(0-23)表示时间,而h h用1-12 am/pm格式表示时间

    同时检查Oracle docs以供参考